package cn.wizzer.app.user.modules.services;

import cn.wizzer.app.user.modules.models.GroupMember;
import cn.wizzer.framework.base.service.BaseService;
import cn.wizzer.framework.page.Pagination;

import java.util.List;

public interface GroupMemberService extends BaseService<GroupMember> {

    /**
     * 添加群成员
     *
     * @param userId
     * @param groupId
     */
    void addMember(String userId, String groupId);

    /**
     * 移除群成员
     *
     * @param userId
     * @param groupId
     */
    void delMember(String userId, String groupId);

    /**
     * 根据群ID删除群成员
     *
     * @param groupId
     */
    void delMember(String groupId);

    /**
     * 群成员列表
     *
     * @param groupId
     * @return
     */
    Pagination list(String userId, String groupId, int pageNumber, int pageSize);

    /**
     * 根据群ID查询用户
     *
     * @param groupId
     * @return
     */
    List<GroupMember> list(String groupId);

    /**
     * 查找出群在线人数
     *
     * @param groupId
     * @return
     */
    List<GroupMember> listOnline(String groupId);

    /**
     * 根据用户ID 查询列表
     * 主要就是要获取groupId 的列表
     *
     * @param userId
     * @return
     */
    List<GroupMember> listMember(String userId);

    /**
     * 后台群列表
     *
     * @param pageNumber
     * @param pageSize
     * @param groupName
     * @param userKeyword
     * @param searchDate
     * @return
     */
    Pagination listPage(int pageNumber, int pageSize, String groupName, String userKeyword, String[] searchDate);

    /**
     * 批量添加群成员
     *
     * @param userIds
     * @param groupId
     */
    void batchAdd(String[] userIds, String groupId);

}
